package com.sky.annotation;

import com.sky.enumeration.OperationType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;//此注解来自springboot
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;//此注解来自springboot

/**
 * 自定义注解，用于自动填充处理，配套的资料图片在文件夹里，不是很懂的可以点开看
 *
 * jdk1.5起开始提供了4个元注解：@Target、@Retention、@Documented、@Inherited。何谓元注解？就是注解的注解。
 * 在程序开发中，有时候我们需要自定义一个注解，这个自定义注解类就需要被元注解修饰，以定义该类的一些基本特征。
 *
 * ————————————————
 *
 *                             版权声明：本文为博主原创文章，遵循 CC 4.0 BY-SA 版权协议，转载请附上原文出处链接和本声明。
 *
 * 原文链接：https://blog.csdn.net/yingwang9/article/details/109173597
 */
@Target(ElementType.METHOD)//括号里能加入很多类型，这里是elementtype.method，就是
//说明这个注解是加在方法上面的，@Target是注解的注解，称之为元注解
@Retention(RetentionPolicy.RUNTIME)//固定写法，目前不知道是啥
public @interface AutoFill {
OperationType value();//枚举的两个操作，一个是update，另一个是insert（属性名），因为这个公共字段
    //只有在这两个数据库操作时才会用到。其实完全可以不用在这里面加任何数据，比如这里直接删除掉OperationType value();
    // 只用创建好这个类就行了，添加数据
    // 只是为了规范和更加良好的视野效果。比如：如果有，那么给类添加时就要写@AutoFill(value=OperationType.UPDATE)，括号里
    //就能知道是啥操作，如果没有规范数据，那么就可以只给添加一个@AutoFill。所以只是更方便人们查看

}
